bool _isSubtree(struct TreeNode*p, struct TreeNode* q)
{
    if(p == NULL&&q == NULL)
        return true;


    if(p == NULL||q == NULL)
        return false;
    if(p->val!=q->val)
    return false;
    
    return _isSubtree(p->left,q->left)&&_isSubtree(p->right,q->right);
}


bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){
    if(root == NULL)
    return false;


    return _isSubtree(root,subRoot)||isSubtree(root->left,subRoot)||isSubtree(root->right,subRoot);
   
}